/*************************************郑州精铖电力设备有限公司*****************************************************
** 通讯实验室-LoRa模块
** 研发部编写，工程专用
** 版权所有，盗版必究
************************************************文件描述***********************************************************
** 文件名：LoRa_Reg.h
** 描  述：LoRa 寄存器函数头文件
**
************************************************历史版本***********************************************************
** 作者：
** 日期：
** 版本：
**
************************************************使用版本***********************************************************
** 作者李康
** 日期：20191203
** 版本：V1.0
**
**************************************************说明*************************************************************
**LoRa模块片选引脚定义----->   LoRa_CS
**LoRa模块片SPI总线句柄定义----->   hspi1
************************************http://www.jingchengdianli.com*************************************************/
#ifndef _LORA_REG_H_
#define _LORA_REG_H_
/*************************************************库头文件*********************************************************/
#include <LoRa_App.h>
#include <LoRa_Dri.h>
#include <stdint.h>
#include <stdbool.h>
/***********************************************底层驱动库头文件***************************************************/
/**************************************************全局变量********************************************************/

#define 		XTAL_FREQ			32000000
#define 		FREQ_STEP			61.03515625


//SX1276 物理层配置
typedef struct sLoRaSettings
{
    uint32_t	RFFrequency;				// LORA RFFrequency载波频率
    int8_t		Power;						// LORA Power 发射功率
    uint8_t   	SignalBw;					// LORA SignalBw  信号带宽[0: 7.8 kHz, 1: 10.4 kHz, 2: 15.6 kHz, 3: 20.8 kHz, 4: 31.2 kHz,5: 41.6 kHz, 6: 62.5 kHz, 7: 125 kHz, 8: 250 kHz, 9: 500 kHz, other: Reserved]
    uint8_t 	SpreadingFactor;			// LORA SpreadingFactor 扩频因子 [6: 64, 7: 128, 8: 256, 9: 512, 10: 1024, 11: 2048, 12: 4096  chips]
    uint8_t	    ErrorCoding;				// LORA ErrorCoding 纠错编码率[1: 4/5, 2: 4/6, 3: 4/7, 4: 4/8]
    bool 		CrcOn;						// LORA[0: OFF, 1: ON]
    bool 		ImplicitHeaderOn;		    // LORA[0: OFF, 1: ON]
    bool 		RxSingleOn;					// LORA[0: Continuous, 1 Single]
    bool 		FreqHopOn;				    // LORA[0: OFF, 1: ON]
    uint8_t   	HopPeriod;					//	LORA HopPeriod 调频符号周期
    uint8_t   	PayloadLength;			    //	LORA PayloadLength 负载长度
}tLoRaSettings;

//LoRa的寄存器声明
#define LoRa_Fifo_Reg   								0x00			//FIFO读写访问
#define LoRa_OpMode_Reg   						        0x01			//RF运行模式选择
#define LoRa_FrfMsb_Reg   							    0x06			//RF载波频率，高8位
#define LoRa_FrfMid_Reg   							    0x07			//RF载波频率，中8位
#define LoRa_FrfLsb_Reg   							    0x08			//RF载波频率，低8位
#define LoRa_PaConfig_Reg   						    0x09 		    //PA选择和输出功率控制
#define LoRa_PaRamp_Reg     						    0x0A 		    //LoRa模式下斜升/斜降时间
#define LoRa_Ocp_Reg       							    0x0B 		    //过流保护控制
#define LoRa_Lna_Reg         							0x0C		    //LNA设置
#define LoRa_FifoAddrPtr_Reg  					        0x0D		    //FIFO SPI指针
#define LoRa_FifoTxBaseAddr_Reg  				        0x0E			//发送数据的起始地址
#define LoRa_FifoRxBaseAddr_Reg  				        0x0F			//接收数据的起始地址
#define LoRa_FifoRxCurrentAddr_Reg  		            0x10			//最后接收数据的起始地址
#define LoRa_IrqFlagsMask_Reg  					        0x11			//可选中断标志屏蔽
#define LoRa_IrqFlags_Reg  							    0x12			//中断标志
#define LoRa_RxNbBytes_Reg  						    0x13			//接收到的字节数
#define LoRa_RxHeaderCntValueMsb_Reg  	                0x14			//接收到的有效报头数高八位
#define LoRa_RxHeaderCntValueLsb_Reg  	                0x15			//接收到的有效报头数低八位
#define LoRa_RxPacketCntValueMsb_Reg  	                0x16			//接收到的有效有效数据包数高八位
#define LoRa_RxPacketCntValueLsb_Reg  	                0x17			//接收到的有效有效数据包数低八位
#define LoRa_ModemStat_Reg  					        0x18			//LoRa调制解调器现场状态
#define LoRa_PktSnrValue_Reg  					        0x19			//最后一个数据包信噪比估值
#define LoRa_PktRssiValue_Reg  					        0x1A		    //最后一个数据包的RSSI
#define LoRa_RssiValue_Reg  						    0x1B		    //电流RSSI
#define LoRa_HopChannel_Reg  					        0x1C		    //FHSS起始信道
#define LoRa_ModemConfig1_Reg  				            0x1D		    //调制解调器物理层配置1
#define LoRa_ModemConfig2_Reg  				            0x1E			//调制解调器物理层配置2
#define LoRa_SymbTimeoutLsb_Reg  			            0x1F			//接收机超时值
#define LoRa_PreambleMsb_Reg  				            0x20			//前导码长度高八位
#define LoRa_PreambeLsb_Reg  					        0x21			//前导码长度低八位
#define LoRa_PayloadLength_Reg  				        0x22			//LoRa负载长度
#define LoRa_MaxPayloadLength_Reg  		                0x23			//LoRa负载长度最大值
#define LoRa_HopPeriod_Reg  						    0x24			//FHSS跳频周期
#define LoRa_FifoRxByteAddr_Reg  				        0x25			//FIFO中最后写入的字节的地址
#define LoRa_ModemConfig3_Reg  				            0x26			//调制解调器物理层配置3
#define LoRa_DioMapping1_Reg  				            0x40			//DIOO到DIO3引脚映射
#define LoRa_DioMapping2_Reg  				            0x41			//DIO4、DIO5引脚映射，ClkOut频率
#define LoRa_Version_Reg  							    0x42			//芯片版本
#define LoRa_Tcxo_Reg  								    0x4B		    //TCXO或XTAL输入设置
#define LoRa_PaDac_Reg  								0x4D		    //PA更大功率设置
#define LoRa_FormerTemp_Reg  					        0x5B		    //IQ校准期间存储温度
#define LoRa_AgcRef_Reg  							    0x13			//AGC阈值调整
#define LoRa_AgcThresh1_Reg  					        0x62			//AGC阈值调整
#define LoRa_AgcThresh2_Reg  					        0x63			//AGC阈值调整
#define LoRa_AgcThresh3_Reg  					        0x64			//AGC阈值调整
#define LoRa_Pll_Reg  									0x70			//PLL带宽控制

//寄存器位变量声明

// OpModeReg
#define LoRa_OpMode_LongRangMode_Mask                   0x7F 	        //0111 1111
#define LoRa_OpMode_LongRangMode_OFF                    0x00 	        //Default
#define LoRa_OpMode_LongRangMode_ON                     0x80 	        //1000 0000

#define LoRa_OpMode_Mask                                0xF8 	        //1111 1000		--	bit2~0
#define LoRa_SleepMode 									0x00 	        //0000 0000		--	睡眠模式
#define LoRa_StandByMode                        		0x01 	        //0000 0001		--	待机模式(缺省值) //Default
#define LoRa_FSTxMode               					0x02 	        //0000 0010		--	频率合成发送模式
#define LoRa_TxMode                  					0x03		    //0000 0011		--	发送模式
#define LoRa_FSRxMode                       			0x04		    //0000 0100		--	频率合成接收模式
#define LoRa_RXCONTINUOUSMode                           0x05 	        //0000 0101		--	持续接收模式
#define LoRa_RXSINGLEMode            				    0x06 	        //0000 0110		--	单次接收
#define LoRa_CADMode                   					0x07		    //0000 0111		--	信道活动检测


// FrfReg(MHz)
#define LoRa_FRFMSB_434_MHZ							    0x6C 	        //Default
#define LoRa_FRFMID_434_MHZ							    0x80 	        //Default
#define LoRa_FRFLSB_434_MHZ							    0x00 	        //Default

#define LoRa_FRFMSB_433_MHZ							    0x6C
#define LoRa_FRFMID_433_MHZ							    0x40
#define LoRa_FRFLSB_433_MHZ							    0x00

//PaConfigReg
#define LoRa_PaConfig_PaSelect_Mask                     0x7F
#define LoRa_PaConfig_PaSelect_Paboost                  0x80
#define LoRa_PaConfig_PaSelect_Rfo    				    0x00 	        // Default
#define LoRa_PaConfig_Max_Power_Mask                    0x8F
#define LoRa_PaConfig_Outputpower_Mask                  0xF0
#define LoRa_PaRamp_Mask                                0xF0


//LnaReg
#define LoRa_Lna_Gain_G1                                0x20 	        //0010 0000 (缺省值) 最大增益

//IrqFlagsMaskReg
#define LoRa_RxTimeout_IRQMask                		    0x80
#define LoRa_RxDone_IRQMask                   		    0x40
#define LoRa_PayloadCrcError_IRQMask          		    0x20
#define LoRa_ValidHeader_IRQMask              		    0x10
#define LoRa_TxDone_IRQMask                   		    0x08
#define LoRa_CadDone_IRQMask                  		    0x04
#define LoRa_FhssChangeChannel_Mask        			    0x02
#define LoRa_CadDetected_IRQMask              		    0x01

//IrqFlagsReg
#define LoRa_RxTimeout_IrqFlags                         0x80
#define LoRa_RxDone_IrqFlags                            0x40
#define LoRa_PayloadCrcError_IrqFlags                   0x20
#define LoRa_ValidHeader_IrqFlags                       0x10
#define LoRa_TxDone_IrqFlags                            0x08
#define LoRa_CadDone_IrqFlags                           0x04
#define LoRa_FhssChangeChannel_IrqFlags            	    0x02
#define LoRa_CadDetected_IrqFlags                       0x01

//ModemConfig1Reg
#define LoRa_ModemConfig1_BW_MASK                       0x0F
#define LoRa_ModemConfig1_BW_7_81_KHZ                   0x00
#define LoRa_ModemConfig1_BW_10_41_KHZ                  0x10
#define LoRa_ModemConfig1_BW_15_62_KHZ                  0x20
#define LoRa_ModemConfig1_BW_20_83_KHZ                  0x30
#define LoRa_ModemConfig1_BW_31_25_KHZ                  0x40
#define LoRa_ModemConfig1_BW_41_66_KHZ                  0x50
#define LoRa_ModemConfig1_BW_62_50_KHZ                  0x60
#define LoRa_ModemConfig1_BW_125_KHZ                    0x70            // Default
#define LoRa_ModemConfig1_BW_250_KHZ                    0x80
#define LoRa_ModemConfig1_BW_500_KHZ                    0x90

#define LoRa_ModemConfig1_CodingRate_Mask               0xF1 	        //1111 0001
#define LoRa_ModemConfig1_CodingRate_4_5                0x02
#define LoRa_ModemConfig1_CodingRate_4_6                0x04 	        //缺省值
#define LoRa_ModemConfig1_CodingRate_4_7                0x06
#define LoRa_ModemConfig1_CodingRate_4_8                0x08

#define LoRa_ModemConfig1_ImplicitHeader_Mask           0xFE	        //1111 1110
#define LoRa_ModemConfig1_ImplicitHeader_ON             0x01	        //0000 0001
#define LoRa_ModemConfig1_ImplicitHeader_OFF            0x00 	        //缺省值

//ModemConfig2Reg
#define LoRa_ModemConfig2_SpreadingFactor_Mask          0x0F
#define LoRa_ModemConfig2_SpreadingFactor_6             0x60
#define LoRa_ModemConfig2_SpreadingFactor_7             0x70 	        //缺省值
#define LoRa_ModemConfig2_SpreadingFactor_8             0x80
#define LoRa_ModemConfig2_SpreadingFactor_9             0x90
#define LoRa_ModemConfig2_SpreadingFactor_10            0xA0
#define LoRa_ModemConfig2_SpreadingFactor_11            0xB0
#define LoRa_ModemConfig2_SpreadingFactor_12            0xC0

#define LoRa_ModemConfig2_TxContinuousMode_Mask         0xF7
#define LoRa_ModemConfig2_TxContinuousMode_ON           0x08
#define LoRa_ModemConfig2_TxContinuousMode_OFF          0x00

#define LoRa_ModemConfig2_RxPayloadCRC_Mask             0xFB
#define LoRa_ModemConfig2_RxPayloadCRC_ON               0x04
#define LoRa_ModemConfig2_RxPayloadCRC_OFF              0x00            // Default

#define LoRa_ModemConfig2_SymbTimeoutMSB_Mask           0xFC
#define LoRa_ModemConfig2_SymbTimeoutMSB                0x00            // Default


//DioMapping1Reg
#define LoRa_DioMapping1_DIO0_MASK                      0x3F	        //0011 1111
#define LoRa_DioMapping1_DIO0_00                        0x00  	        //0000 0000 (缺省值)
#define LoRa_DioMapping1_DIO0_01                        0x40	        //0100 0000
#define LoRa_DioMapping1_DIO0_10                        0x80	        //1000 0000
#define LoRa_DioMapping1_DIO0_11                        0xC0	        //1100 0000

#define LoRa_DioMapping1_DIO1_MASK                      0xCF
#define LoRa_DioMapping1_DIO1_00                        0x00            // Default
#define LoRa_DioMapping1_DIO1_01                        0x10
#define LoRa_DioMapping1_DIO1_10                        0x20
#define LoRa_DioMapping1_DIO1_11                        0x30

#define LoRa_DioMapping1_DIO2_MASK                      0xF3
#define LoRa_DioMapping1_DIO2_00                        0x00            // Default
#define LoRa_DioMapping1_DIO2_01                        0x04
#define LoRa_DioMapping1_DIO2_10                        0x08
#define LoRa_DioMapping1_DIO2_11                        0x0C

#define LoRa_DioMapping1_DIO3_MASK                      0xFC
#define LoRa_DioMapping1_DIO3_00                        0x00            // Default
#define LoRa_DioMapping1_DIO3_01                        0x01
#define LoRa_DioMapping1_DIO3_10                        0x02
#define LoRa_DioMapping1_DIO3_11                        0x03

// DioMapping2Reg
#define LoRa_DioMapping2_DIO4_MASK                      0x3F
#define LoRa_DioMapping2_DIO4_00                        0x00            // Default
#define LoRa_DioMapping2_DIO4_01                        0x40
#define LoRa_DioMapping2_DIO4_10                        0x80
#define LoRa_DioMapping2_DIO4_11                        0xC0

#define LoRa_DioMapping2_DIO5_MASK                      0xCF
#define LoRa_DioMapping2_DIO5_00                        0x00            // Default
#define LoRa_DioMapping2_DIO5_01                        0x10
#define LoRa_DioMapping2_DIO5_10                        0x20
#define LoRa_DioMapping2_DIO5_11                        0x30

#define LoRa_DioMapping2_MAP_MASK                       0xFE
#define LoRa_DioMapping2_MAP_PREAMBLEDETECT             0x01
#define LoRa_DioMapping2_MAP_RSSI                       0x00            // Default


//ModemConfig3Reg
#define LoRa_ModemConfig3_LowDataRateOptimize_Mask      0xF7	        //1111 0111(bit3)
#define LoRa_ModemConfig3_LowDataRateOptimize_ON        0x08	        //0000 1000(开启)
#define LoRa_ModemConfig3_LowDataRateOptimize_OFF       0x00 	        //0000 0000(关闭)
#define LoRa_ModemConfig3_AgcAuto_Mask                  0xFB 	        //1111 1011(bit2)
#define LoRa_ModemConfig3_AgcAuto_ON                    0x04 	        //
#define LoRa_ModemConfig3_AgcAuto_OFF                   0x00


typedef struct sSX1276LR
{
    uint8_t FifoReg;                               	    // 0x00
    // Common settings
    uint8_t OpModeReg;                                  // 0x01
    uint8_t Res02Reg;                               	// 0x02
    uint8_t Res03Reg;                              	    // 0x03
    uint8_t BandSettingReg;                             // 0x04
    uint8_t Res05Reg;                               	// 0x05
    uint8_t FrfMsbReg;                              	// 0x06
    uint8_t FrfMidReg;                              	// 0x07
    uint8_t FrfLsbReg;                             		 // 0x08
    // Tx settings
    uint8_t PaConfigReg;								// 0x09
    uint8_t PaRampReg;								    // 0x0A
    uint8_t OcpReg;										// 0x0B
    // Rx settings
    uint8_t LnaReg;                                     // 0x0C -- LAN设置
    // LoRa registers
    uint8_t FifoAddrPtrReg;                             // 0x0D
    uint8_t FifoTxBaseAddrReg;                          // 0x0E
    uint8_t FifoRxBaseAddrReg;                          // 0x0F
    uint8_t FifoRxCurrentAddrReg;                       // 0x10		接收到最后一个数据包的起始地址(数据缓冲区中)
    uint8_t IrqFlagsMaskReg;                            // 0x11
    uint8_t IrqFlagsReg;                                // 0x12
    uint8_t NbRxBytesReg;                               // 0x13
    uint8_t RxHeaderCntValueMsbReg;                     // 0x14
    uint8_t RxHeaderCntValueLsbReg;                     // 0x15
    uint8_t RxPacketCntValueMsbReg;                     // 0x16
    uint8_t RxPacketCntValueLsbReg;                     // 0x17
    uint8_t ModemStatReg;                               // 0x18
    uint8_t PktSnrValueReg;                             // 0x19
    uint8_t PktRssiValueReg;                            // 0x1A
    uint8_t RssiValueReg;                               // 0x1B
    uint8_t HopChannelReg;                              // 0x1C
    uint8_t ModemConfig1Reg;                            // 0x1D
    uint8_t ModemConfig2Reg;                            // 0x1E
    uint8_t SymbTimeoutLsbReg;                          // 0x1F
    uint8_t PreambleMsbReg;                             // 0x20
    uint8_t PreambleLsbReg;                             // 0x21
    uint8_t PayloadLengthReg;                           // 0x22		负载字节长度
    uint8_t MaxPayloadLengthReg;                        // 0x23
    uint8_t HopPeriodReg;                               // 0x24
    uint8_t FifoRxByteAddrReg;                          // 0x25
    uint8_t ModemConfig3Reg;                            // 0x26
    uint8_t TestReserved27Reg[0x30 - 0x27];             // 0x27-0x30
    uint8_t TestReserved31Reg;                          // 0x31
    uint8_t TestReserved32Reg[0x40 - 0x32];             // 0x32-0x40
    // I/O settings
    uint8_t DioMapping1Reg;                             // 0x40
    uint8_t DioMapping2Reg;                             // 0x41
    // Version
    uint8_t VersionReg;                                 // 0x42
    // Additional settings
    uint8_t AgcRefReg;                                  // 0x43
    uint8_t AgcThresh1Reg;                              // 0x44
    uint8_t AgcThresh2Reg;                              // 0x45
    uint8_t AgcThresh3Reg;                              // 0x46
    // Test
    uint8_t TestReserved47Reg[0x4B - 0x47];             // 0x47-0x4A
    // Additional settings
    uint8_t PllHopReg;                                  // 0x4B
    uint8_t TestReserved4CReg;                          // 0x4C
    uint8_t PaDacReg;                                   // 0x4D
    // Test
    uint8_t TestReserved4EReg[0x58-0x4E];               // 0x4E-0x57
    // Additional settings
    uint8_t TcxoReg;                                    // 0x58
    // Test
    uint8_t TestReserved59Reg;                          // 0x59
    // Test
    uint8_t TestReserved5BReg;                          // 0x5B
    // Additional settings
    uint8_t PllReg;                                     // 0x5C
    // Test
    uint8_t TestReserved5DReg;                          // 0x5D
    // Additional settings
    uint8_t PllLowPnReg;                                // 0x5E
    // Test
    uint8_t TestReserved5FReg[0x6C - 0x5F];             // 0x5F-0x6B
    // Additional settings
    uint8_t FormerTempReg;                              // 0x6C
    // Test
    uint8_t TestReserved6DReg[0x71 - 0x6D];             // 0x6D-0x70
}tSX1276LR;

//寄存器层函数声明
/***************************************************************************
* 函 数 名:  LoRaSetRFFrequency
* 函数功能:  LoRa模块设置载波频率
* 输    入:  freq 载波频率
*
* 输    出:  无
*
* 返    回:  无
*
* 备    注:  无
* 作    者:  李康
* 日	期:  2019-12-03
****************************************************************************/
void LoRaSetRFFrequency(uint32_t freq);

/***************************************************************************
* 函 数 名:  LoRaSetSpreadingFactor
* 函数功能:  LoRa模块设置扩频因子
* 输    入:  factor 扩频因子
*
* 输    出:  无
*
* 返    回:  无
*
* 备    注:  无
* 作    者:  李康
* 日	期:  2019-12-03
****************************************************************************/
void LoRaSetSpreadingFactor(uint8_t factor);

/***************************************************************************
* 函 数 名:  LoRaSetNbTrigPeaks
* 函数功能:  LoRa模块设置尖峰
* 输    入:  value 尖峰个数
*
* 输    出:  无
*
* 返    回:  无
*
* 备    注:  无
* 作    者:  李康
* 日	期:  2019-12-03
****************************************************************************/
void LoRaSetNbTrigPeaks(uint8_t value);

/***************************************************************************
* 函 数 名:  LoRaSetErrorCoding
* 函数功能:  LoRa模块设置纠错编码率
* 输    入:  value 纠错编码率
*
* 输    出:  无
*
* 返    回:  无
*
* 备    注:  无
* 作    者:  李康
* 日	期:  2019-12-03
****************************************************************************/
void LoRaSetErrorCoding(uint8_t value);

/***************************************************************************
* 函 数 名:  LoRaSetPacketCrcOn
* 函数功能:  LoRa模块设置CRC校验模式
* 输    入:  enable CRC校验模式
*
* 输    出:  无
*
* 返    回:  无
*
* 备    注:  无
* 作    者:  李康
* 日	期:  2019-12-03
****************************************************************************/
void LoRaSetPacketCrcOn(bool enable);

/***************************************************************************
* 函 数 名:  LoRaSetSignalBandwidth
* 函数功能:  LoRa模块设置带宽
* 输    入:  bw 带宽
*
* 输    出:  无
*
* 返    回:  无
*
* 备    注:  无
* 作    者:  李康
* 日	期:  2019-12-03
****************************************************************************/
void LoRaSetSignalBandwidth(uint8_t bw);

/***************************************************************************
* 函 数 名:  LoRaSetImplicitHeaderOn
* 函数功能:  LoRa模块设置隐式报头显示模式
* 输    入:  enable隐式报头显示模式
*
* 输    出:  无
*
* 返    回:  无
*
* 备    注:  无
* 作    者:  李康
* 日	期:  2019-12-03
****************************************************************************/
void LoRaSetImplicitHeaderOn(bool enable);

/***************************************************************************
* 函 数 名:  LoRaSetSymbTimeout
* 函数功能:  LoRa模块设置接收超时时间
* 输    入:  value 接收超时时间
*
* 输    出:  无
*
* 返    回:  无
*
* 备    注:  无
* 作    者:  李康
* 日	期:  2019-12-03
****************************************************************************/
void LoRaSetSymbTimeout(uint16_t value);

/***************************************************************************
* 函 数 名:  LoRaSetPayloadLength
* 函数功能:  LoRa模块设置负载长度
* 输    入:  value 负载长度
*
* 输    出:  无
*
* 返    回:  无
*
* 备    注:  无
* 作    者:  李康
* 日	期:  2019-12-03
****************************************************************************/
void LoRaSetPayloadLength(uint8_t value);

/***************************************************************************
* 函 数 名:  LoRaSetLowDatarateOptimize
* 函数功能:  LoRa模块设置低速率优化模式
* 输    入:  enable低速率优化模式
*
* 输    出:  无
*
* 返    回:  无
*
* 备    注:  无
* 作    者:  李康
* 日	期:  2019-12-03
****************************************************************************/
void LoRaSetLowDatarateOptimize(bool enable);

/***************************************************************************
* 函 数 名:  LoRaSetPAOutput
* 函数功能:  LoRa模块设置功率输出
* 输    入:  outputPin   功率输出
*
* 输    出:  无
*
* 返    回:  无
*
* 备    注:  无
* 作    者:  李康
* 日	期:  2019-12-03
****************************************************************************/
void LoRaSetPAOutput(uint8_t outputPin);

/***************************************************************************
* 函 数 名:  LoRaSetPa20dBm
* 函数功能:  LoRa模块设置大功率输出模式
* 输    入:  enale  大功率输出模式
*
* 输    出:  无
*
* 返    回:  无
*
* 备    注:  无
* 作    者:  李康
* 日	期:  2019-12-03
****************************************************************************/
void LoRaSetPa20dBm(bool enale);

/***************************************************************************
* 函 数 名:  LoRaSetRFPower
* 函数功能:  LoRa模块设置射频功率
* 输    入:  power  射频功率
*
* 输    出:  无
*
* 返    回:  无
*
* 备    注:  无
* 作    者:  李康
* 日	期:  2019-12-03
****************************************************************************/
void LoRaSetRFPower(int8_t power);

/***************************************************************************
* 函 数 名:  LoRaSetPreambleLength
* 函数功能:  LoRa模块设置前导码长度
* 输    入:  value  前导码长度
*
* 输    出:  无
*
* 返    回:  无
*
* 备    注:  无
* 作    者:  李康
* 日	期:  2019-12-03
****************************************************************************/
void LoRaSetPreambleLength(uint16_t value);

/***************************************************************************
* 函 数 名:  LoRaSetHopPeriod
* 函数功能:  LoRa模块设置载波段
* 输    入:  power  射频功率
*
* 输    出:  无
*
* 返    回:  无
*
* 备    注:  无
* 作    者:  李康
* 日	期:  2019-12-03
****************************************************************************/
void LoRaSetHopPeriod(uint8_t value);

/***************************************************************************
* 函 数 名:  LoRaSetPaRamp
* 函数功能:  LoRa模块设置斜率爬升系数
* 输    入:  value  斜率爬升系数
*
* 输    出:  无
*
* 返    回:  无
*
* 备    注:  无
* 作    者:  李康
* 日	期:  2019-12-03
****************************************************************************/
void LoRaSetPaRamp(uint8_t value);

#endif /*  LORA_REG_H_*/
